/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositePagInation.js<br>
 * 日期：2016年8月23日<br>
 * 作者: 杨顺强<br>
 * 功能：分页组件<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 类型名称：Rainier.UI.V2.UICompositePagInation<br>
 * 类型功能：分页组件类声明，简化分页操作<br>
 */
Rainier.UI.V2.UICompositePagInation = Rainier.UI.V2.UIComposite.extend({
	
	NAME : "Rainier.UI.V2.UICompositePagInation",
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePagInation.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite	:  	父组件实例 一般为对应的panel或者layout中添加<br>
	 * 参数输入：objProperties		 	:	
	 * {
	 * 		total	: "300",			//数据的总数量
	 * 		pageSize: "50",				//每页显示数据的数量
	 * 		pageList: [10,20,30,50],	//控制每页显示的数据条数
	 * 		loading	: "url",			//获取远端数据
	 * 		buttons : [{
						iconCls:'icon-add',
						handler:function(){alert('add')}
						},'-',{
							iconCls:'icon-save',
							handler:function(){alert('save')}
						}]",			//为分页组件添加工具
	 * }
	 * 注：具体参数信息参照easyUI官网该组件Properties。<br>	
	 * 异常信息：无<br>
	 */
	init : function(objParentComposite,objProperties){
		//使用父类初始化子类对象
		this._super(objParentComposite,objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePagInation.appendEventHandler<br>
	 * 函数功能：添加事件代理<br>
	 * 异常信息：无<br>
	 */
	appendEventHandler : function(){
		this.m_aEventList = ['onSelectPage','onBeforeRefresh','onRefresh','onChangePageSize'];
		this._super();		
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePagInation.createComposite<br>
	 * 函数功能：创建组件<br>
	 * 参数输入：eleParent : 父组件的节点元素<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	createComposite : function(eleParent){
		this._super(eleParent);		
		var newEle = this.CreateElement("div",
				this.m_objProperties.id);
		eleParent.append(newEle);
		newEle.pagination(this.m_objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePagInation.callUiMethod<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：sMethod : 方法名称
	 * 参数输入：objArgs : 更具方法名称，在该类方法中查找对应参数，或easyUI官网对应组件的方法中检索
	 * 函数返回：根据调用方法，返回相应的数值<br>
	 * 异常信息：无<br>
	 */
	callUiMethod : function(sMethod,objArgs){
		return this.getElement().pagination(sMethod,objArgs);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePagInation.options<br>
	 * 函数功能：返回选项（options）对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：options 对象<br>
	 * 异常信息：无<br>
	 */
	options : function(){
		return this.getElement().pagination('options');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePagInation.loading<br>
	 * 函数功能：把分页（pagination）变成正在加载（loading）状态。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	loading : function(){
		return this.getElement().pagination('loading');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePagInation.loaded<br>
	 * 函数功能：把分页（pagination）变成加载完成（loaded）状态。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	loaded : function(){
		return this.getElement().pagination('loaded');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePagInation.refresh<br>
	 * 函数功能：刷新并显示分页信息。<br>
	 * 参数输入：$('#pp').pagination('refresh');	// 刷新分页栏信息
				$('#pp').pagination('refresh',{	// 改变选项，并刷新分页栏信息
					total: 114,
					pageNumber: 6
				});<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	refresh : function(objOptions){
		return this.getElement().pagination('refresh',objOptions);
	},
	
	/**
	 * 函数名称：<br>
	 * 函数功能：选择一个新页面。<br>
	 * 参数输入：$('#pp').pagination('select');	// 刷新当前页面
				$('#pp').pagination('select', 2);	// 选择第二页<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	select : function(intPage){
		return this.getElement().pagination('select',intPage);
	}
	
});